// --------------------------------------------------------------------------------------------------------------------
// <copyright file="ISettings.cs" company="XamlNinja">
//   2011 Richard Griffin and Ollie Riches
// </copyright>
// <summary>
//   ISettings.cs
// </summary>
// --------------------------------------------------------------------------------------------------------------------

namespace WP7Contrib.Services.BingMaps
{
    /// <summary>
    /// Defines the setting for the Bing Maps service.
    /// </summary>
    public interface ISettings
    {
        #region Properties

        /// <summary>
        /// Bing Maps application identifier, required to make calls to Bing Maps REST API
        /// </summary>
        string AppId { get; }

        /// <summary>
        /// Bing Maps templated calculate route url.
        /// </summary>
        string CalculateRouteUrl { get; }

        /// <summary>
        /// Bing Maps templated calculate route with major raods url.
        /// </summary>
        string CalculateRoutesFromMajorRoadsUrl { get; }

        /// <summary>
        /// Bing Maps credentials identifier, required to make calls to Bing Maps REST API
        /// </summary>
        string CredentialsId { get; }

        /// <summary>
        /// Bing Maps templated imagery centre point url.
        /// </summary>
        string ImageryCenterPointUrl { get; }

        /// <summary>
        /// Bing Maps templated imagery centre point with route url.
        /// </summary>
        string ImageryCenterPointWithRouteUrl { get; }

        /// <summary>
        /// Bing Maps templated imagery map area url.
        /// </summary>
        string ImageryMapAreaUrl { get; }

        /// <summary>
        /// Bing Maps templated imagery map area with route url.
        /// </summary>
        string ImageryMapAreaWithRouteUrl { get; }

        /// <summary>
        /// Bing Maps templated imagery route url.
        /// </summary>
        string ImageryMapRouteUrl { get; }

        /// <summary>
        /// Bing Maps templated imagery query url.
        /// </summary>
        string ImageryQueryUrl { get; }

        /// <summary>
        /// Bing Maps templated imagery meta data url
        /// </summary>
        string ImageryMetadataUrl { get; }

        /// <summary>
        /// Bing Maps templated imagery meta data for specific location url
        /// </summary>
        string ImageryMetadataAtSpecificLocationUrl { get; }

        /// <summary>
        /// Bing Maps templated imagery basic meta data for specific location url
        /// </summary>
        string ImageryMetadataBasicAtSpecificLocationUrl { get; }

        /// <summary>
        /// Bing Maps templated location query url.
        /// </summary>
        string FindLocationUsingQueryUrl { get; }

        /// <summary>
        /// Bing Maps templated location address url.
        /// </summary>
        string SearchLocationUsingAddressUrl { get; }

        /// <summary>
        /// Bing Maps templated location point url.
        /// </summary>
        string SearchLocationUsingPointUrl { get; }

        /// <summary>
        /// Bing Maps templated search url.
        /// </summary>
        string SearchUrl { get; }

        /// <summary>
        /// Cache time out value for results of requests made to Bing Maps REST API
        /// </summary>
        int CacheTimeout { get; }
        
        /// <summary>
        /// Timeout value for requests made to Bing Maps REST API
        /// </summary>
        int Timeout { get; }

        /// <summary>
        /// Retry count for requests made to Bing Maps REST API
        /// </summary>
        int Retry { get; }

        #endregion
    }
}